# @Time:2021/6/9 22:16
# @Author:5120195554王欣霏
# -*- coding = utf-8 -*-

import pygame as pg


class Player(pg.sprite.Sprite):
    def __init__(self, pos):  # pos为初始化位置
        super(Player, self).__init__()
        self.image = pg.Surface((120, 120), pg.SRCALPHA)  # 第一个参数是大小 第二个参数pg.SRCALPHA使得字母有渐变消失效果
        pg.draw.polygon(self.image, (255, 182, 193),
                        [(60, 0), (120, 120), (0, 120)])  # 三角形 第一个参数是样式 第二个参数是颜色 第三个参数是三个点的坐标
        self.rect = self.image.get_rect(center=pos)  # 外接的矩形


class Enemy(pg.sprite.Sprite):
    def __init__(self, pos):
        super(Enemy, self).__init__()
        self.image = pg.Surface((120, 120), pg.SRCALPHA)
        pg.draw.circle(self.image, (135, 206, 250), (60, 60), 60)  # 半径是60的圆
        self.rect = self.image.get_rect(center=pos)


if __name__ == '__main__':
    pg.init()  # pg的初始化
    screen = pg.display.set_mode((640, 480))  # 设置屏幕大小
    player = Player((20, 20))  # 初始化三角形的起始位置
    enemies = pg.sprite.Group(Enemy((320, 240)))  # 初始化圆形的起始位置
    all_sprites = pg.sprite.Group(player, enemies)  # 圆形是精灵组 三角形是精灵
    done = False  # 碰撞后是否删除
    clock = pg.time.Clock()  # 时钟事件
    while not done:
        for event in pg.event.get():
            if event.type == pg.QUIT:  # 退出
                done = True
            elif event.type == pg.MOUSEMOTION:  # 鼠标移动
                player.rect.center = event.pos  # 将事件的中心赋值给玩家的中心
        if pg.sprite.spritecollide(player, enemies, False, pg.sprite.collide_mask):  # 碰撞
            pg.display.set_caption("collision")
        else:  # 不碰撞
            pg.display.set_caption("not collision")
        screen.fill((30, 30, 30))  # 填充背景颜色
        all_sprites.draw(screen)  # 将三角形和圆形都画在屏幕上
        pg.display.flip()  # 重新绘制
        clock.tick(60)
    pg.quit()
